تكامل طراحي ديجيتال به كمك كامپيوتر


 






 
طراحي مدارات ديجيتال از 25 سال گذشته تا كنون بسيار متحول گشته است، مدارهاي ديجيتال ابتدايي كه به سختي‌ ميتوان نام سخت‌افزار را بر روي آنها گذاشت، با لامپ‌هاي خلا و تعداد اندكي ترانزيستور ساخته مي‌شدند.
با ظهور تكنولوژي مدار مجتمع، امكان پياده‌سازي مدارات ديجيتال بر روي يك تراشه فراهم گرديد. اولين نسل مدارات‌مجتع يا IC ها، SSI سر نام Small Scale Integration نام دارد كه در اين نسل تراشه‌ها با تعداد بسيار اندكي ترانزيستور و گيت‌هاي منطقي ساخته مي‌شدند، پس از آن حجم مجتمع سازي در نسل‌هاي MSI سر نام Medium ScaleIntegration و LSI سر نام Large Scale Integration به سرعت گسترش يافت و به طوري كه امكان مجتمع سازي هزاران گيت منطقي، در داخل يك تراشه براي طراحان سخت‌افزار فراهم آمده بود.
در اين مرحله روند طراحي بسيار پيچيده و دشوار گرديده بود و طراحان نياز داشتند تا بخشي از مراحل طراحي را به كامپيوتر بسپارند. به كمك ابزارهاي طراحي ديجتال كامپيوتري يا CAD Toolها طراحان توانستند كامپيوتر را در فرايند طراحي اجزاي خود سهيم سازند.

نمايي از يك طراحي بسيار پيچيده
 

با پيشرفت نسل VLSI سر نام Very Large Scale Integration امكان طراحي مدارات مجتمع با ميليون‌ها ترانزيستور فراهم گشته است(مانند تصوير بالا). به دليل پيچيدگي بسيار زياد اين مدارات ،طراحي و ارزيابي عملكرد آنها به روش‌هاي سنتي ديگر ميسر نيست، به همين خاطر ايده‌اي جهت توصيف طرح به يك زبان قابل فهم براي كامپيوتر مطرح گرديد تا زمينه حضور كامپيوتر در پروسه طراحي يك مدار VLSI گسترده‌تر گشته و مسائل طراحي و ارزيابي در پروسه طراحي يك سخت‌افزار جديد، با الگوريتم‌هاي از پيش تعريف شده، پردازش شوند.

زبان توصيف سخت‌افزار چيست ؟
 

HDL سر نام Hardware DescriptionLanguage ، به خانواده‌اي از زبان‌هاي برنامه‌نويسي گفته مي‌شود كه جهت مدل‌سازي عملكرد بخشي از يك سخت‌افزار به كار گرفته مي‌شوند. توصيف سخت‌افزار به كمك HDLها به دو شكل كلي امكان پذير است:

روش اول:
 

مدل‌سازي ساختاري سخت‌افزار، كه با تشرح ارتباطات خارجي، اجزاي تشكيل دهنده داخلي و اتصالات ميان‌ها، جهت توصيف ساختار و اجزاي تشكيل دهنده يك سخت‌افزار به كار برده مي‌شود.

روش دوم:
 

مدل‌سازي رفتاري سخت‌افزار، جهت توصيف انتزاعي رفتار يك سخت‌افزار بدون در نظر گرفتن جزئيات ساختار آن مي‌باشد كه بدون لحاظ كردن اجزاي تشكيل دهنده، به توصيف خروجي‌هاي مدل بر اساس تابعي از ورودي‌هاي آن مي‌پردازد. مدل‌سازي رفتاري يك سخت‌افزار در سطوح مختلفي از انتزاع صورت مي‌پذيرد كه سطوح بالاتر رفتار سخت‌افزار را به صورت چكيده‌تر با جزئيات كمتري نسبت به سطوح پايين تر انتزاع، توصيف مي‌كنند.
طراحي يك سخت‌افزار بر اساس طرح شماتيك مداري كه در گذشته از آن به وفور استفاده مي‌شد، با اينكه شامل اطلاعات بسيار كاملي در مورد سخت‌افزار و اجزاي تشكيل دهنده آن بود، اما در توصيف طرح‌هاي بزرگ به خاطر حجم بسيار زياد اجزاي تشكيل دهنده طرح بسيار پيچيده گشته و حجم مستندات آن خارج از كنترل مي‌گشت. همچنين در روش سنتي طراحي از ايده‌هاي مطرح شده در طرح هيچ گونه حفاظتي به عمل‌ نمي‌آمد و امكان سواستفاده از آنها توسط اشخاصي كه طرح به آنها فروخته مي‌شود، وجود داشت.

نمايي از يك سخت‌افزار مدرن، طراحي شده به كمك زبان‌هاي توصيف سخت‌افزار
 

در طراحي يك سخت‌افزار با توصيف متني‌ آن به كمك يك زبان برنامه‌نويسي، هم حجم مستندات طرح كاهش يافته و هم امكان حفاظت ايده‌هاي طرح به وجود آمده است. علاوه بر اين توصيف متني يك سخت‌افزار به كمك HDLها براي كامپيوتر قابل فهم‌تر از طرح شماتيكي آن سخت‌افزار با اطلاعات تصويري مي‌باشد.
مهمترين وجه تمايز يك زبان توصيف‌ سخت‌افزار با يك زبان برنامه‌نويسي متداول مانند C ، در نحوه اجراي خط‌كد‌ها مي‌باشد، در زبان‌هاي برنامه نويسي متداول مانند C خط كد‌هاي نوشته شده به ترتيب از بالا به پايين اجرا شده تا در نهايت به اتمام برسند، در حالي كه در زبان‌هاي توصيف سخت‌افزار اجراي دستورات ماهيت ترتيبي و سريال نداشته و تمام خط‌كدها به صورت موازي و همزمان اجرا مي‌شوند، در واقع براي توصيف سخت‌افزاري كه ممكن است از چندين بخش‌ ساخته شده باشد كه خروجي آنها به صورت همزمان تغيير مي‌كند، زبان‌هاي برنامه‌نويسي متداول با ماهيت اجراي ترتيبي خود كاربردي ندارند.

شبيه سازي سخت‌افزار به كمك HDLها
 

به كمك زبان‌هاي توصيف سخت‌افزار علاوه بر طراحي مي‌توانيم يك سخت‌افزار را شبيه سازي كرده تا قابليت‌ها و عملكرد‌ آن را قبل از پياده‌سازي آزمايش كنيم. در دنياي واقعي تست كردن يك سخت‌افزار، خود نيازمند يك سخت‌افزار ديگر است كه مجموعه‌اي از ورودي‌هاي مجاز را براي سخت‌افزار زير تست توليد كرده و خروجي حاصله را با مقدار مورد انتظار مقايسه كند. در فضاي مجازي كه كامپيوتر در اختيار ما قرار داده است نيز مي‌توانيم قبل از پياده سازي و ساختن سخت‌افزار، عملكرد آنرا با طراحي يك سخت‌افزار جانبي جهت تست، سخت‌افزار اصلي را ارزيابي كنيم، به اين ترتيب كه به كمك زبان توصيف سخت‌افزار، برنامه‌اي نوشته مي‌شود تا زنجيره‌اي از ورودي‌ها را به سخت‌افزار مورد آزمايش داده و خروجي آن را با مقادير مورد انتظار طراح مقايسه نمايد، به اين برنامه كه جهت آزمايش عملكرد سخت‌افزار نوشته مي‌شود، Testbench گفته مي‌شود.
زبان‌هاي توصيف‌سخت‌افزار Verilog و VHDL در ميان ساير HDLها محبوبيت بيشتري پيدا كرده‌اند كه در ادامه مقاله به بررسي و مقايسه‌آنها خواهيم پرداخت.

زبان توصيف سخت‌افزار VHDL
 

زبان VHDL سر نام Very High Speed Integrated CircuitHardwareDescriptionLanguage از جمله HDLهاي پرطرفداري است كه امروزه در طراحي تراشه‌هاي با كاربرد خاص و تراشه FPGA به كار گرفته مي‌شود.
اين زبان در ابتدا به سفارش وزارت دفاع آمريكا جهت مستند‌سازي اطلاعات مدارات ديجيتال و تراشه‌هاي به كار گرفته شده در ادوات نظامي، طراحي شد. اطلاعات بسيار زياد و پيچيده مدارات ديجيتال به كار گرفته شده در ادوات نظامي‌، مانع از توسعه سريع آنها مي‌شد و اطلاعات طراحي را فقط براي طراح قابل خواندن و پيگيري مي‌ساخت به طوري كه توسعه همان طرح توسط شخص‌ديگر دشوار بود، به همين خاطر در سال 1980 زباني طراحي شد كه توصيف يك مدار در سطوح مختلف انتزاع در آن ميسر باشد. پس از آن ابزارهايي جهت شبيه‌سازي مدارات طراحي شده با اين زبان ايجاد شد، سپس ابزار‌هاي كامپيوتري جهت سنتز كردن كد‌هاي VHDL عرضه شدند كه به كمك اين ابزار، توصيف سخت‌افزاري يك مدار را مي‌توان به راحتي به معادل فيزيكي آن جهت پياده سازي و ساخت مرتبط كرد.
در طراحي زبان توصيف سخت‌افزاري VHDL از مفاهيم زبان برنامه‌نويسي Ada بهره برده شده به همين خاطر اين زبان در syntax بسيار مشابه Ada مي‌باشد. اين زبان به گونه‌اي طراحي شده كه مسائل همزماني و موازي‌سازي سخت‌افزار را به خوبي پوشش دهد.
در سال 1983 دوشركت بزرگ IBM و Texas Instrument به همراه شركت Intermetrics قراردادي را جهت توسعه اين زبان براي كاربرد‌هاي طراحي مدارات ديجيتال امضا كردند و چهار سال بعد اين زبان به توسط IEEE استاندارد سازي شد پس از آن وزارت دفاع آمريكا شركت‌هاي تابع خود را مقيد ساخت تا تمامي مدارات ديجيتال خود را به اين زبان توصيف كنند.
جگنده F-22 يكي از اولين پروژه‌هايي بود كه تمامي مدارات و مستندات الكترونيكي آن به زبان VHDL نگاشته شده بود، موفقيت اين پروژه موجب شد تا زبان VHDL بيش از پيش توسعه يافته و مورد استفاده قرار گيرد.
در سال 1993 استاندارد IEEE-1076 ويرايش شد و در آن تمهيداتي جهت پوشش دادن به سيگنال‌هايي كه در آن واحد چند مقدار به آنها داده مي‌شود، انديشيده شد. در سال 1996 ابزار‌هاي شبيه سازي و سنتز مدارات ديجيتال توصيف شده توسط VHDL به صورت تجاري عرضه شدند تا مراحل طراحي تا پياده‌سازي كامپيوتري يك سخت‌افزار به كمك VHDL تكميل شود.
در سال 2006 كميته فني VHDL مستقر در كنسرسيوم Accellera كه توسط IEEE جهت به روز‌رساني استاندارد VHDL ايجاد شده‌ است، نسخه سوم از پيش نويس استاندارد VHDL-2006 را ارائه كرد.
يك نمونه از برنامه VHDL كه به توصيف يك گيت AND ساده بدون ملاحظات زماني پرداخته است در زير آورده شده است :

std_logic from the IEEE library
library IEEE;
use IEEE.std_logic_1164.all; -- this is the entity
entity name_of_entity is
port (
IN1 : in std_logic;
IN2 : in std_logic;
OUT1: out std_logic);
end entity name_of_entity; -- here comes the architecture
architecture name_of_architecture of name_of_entity is -- Internal signals and components would be defined here
begin
OUT1 <= IN1 and IN2;
end architecture name_of_architecture;
 

زبان توصيف سخت‌افزار Verilog
 

زبان توصيف سخت‌افزاري Verilog سرنام VerifyingLogic جهت مدل‌سازي سيستم‌هاي الكترونيكي ابداع شده است كه كليه مراحل طراحي، ارزيابي و پياده سازي يك مدار آنالوگ يا ديجيتال يا يك مدار تركيبي را در چند سطح انتزاع پوشش مي‌دهد.
Syntax اين زبان بسيار مشابه به زبان C مي‌باشد و در توسعه آن از ويژگي‌هاي زبان C الگو گرفته شده است. اين زبان در سال 1981 توسط Phil Moorby در شركت Gateway DesignAutomation ابداع شد و در سال 1985 نرم‌افزار شبيه‌ساز اين زبان به نام Verilog-XL عرضه شد در سال 1989 اين شركت به همراه حقوق معنوي اين زبان توسط شركت Cadance خريداري و سپس مستندات آنرا براي استفاده عمومي، به صورت رايگان در اختيار مردم قرار گرفت.
در سال 1993 اين زبان توسط IEEE بازنگري و استانداردسازي شد در همين سال بر اساس آمار EETimes حدود 85 درصد از طراحي‌هاي مدارات مجتمعي كه به كارخانه‌هاي توليد‌كننده ادوات نيمه‌هادي سفارش داده شدند، به زبان Verilog توصيف شده بودند.
يك نمونه از برنامه Verilog كه به توصيف يك فليپ‌فلاپ پرداخته است در زير آورده شده است :

module toplevel(clock,reset);
input clock;
input reset;
reg flop1;
reg flop2; always @ (posedge reset or posedge clock)
if (reset)
begin
flop1 <= 0;
flop2 <= 1;
end
else
begin
flop1 <= flop2;
flop2 <= flop1;
end
endmodule
 

از جمله امكانات زبان Verilog محيط PLI آن سر نام Program LanguageInterface مي‌باشد كه به كمك آن مي‌توان كنترل برنامه را از زبان Verilog بر عهده تابعي كه به زبان Cنوشته شده است قرار داد، اين قابليت موجب شده تا زبان Verilog انعطاف پذير گشته و توسعه برنامه در آن توسط زبان C نيز امكان پذير باشد.

Verilogدر برابر VHDL
 

توصيف ساختاري يك سخت‌افزار با زبان Verilog هيچ گونه برتري يا كاستي نسبت به توصيف آن با زبان VHDL ندارد و تفاوت ميان اين دو زبان بيشتر در توصيف‌هاي رفتاري يك سخت‌افزار خود را نشان مي‌دهند. شكل زير نشان‌دهنده ميزان مقياس پذيري اين دو زبان در سطوح مختلف انتزاع در توصيف رفتاري مي‌باشد:
همانطور كه مشاهده مي‌كنيد، زبان Verilog توانايي مدل‌سازي سخت‌افزار تا پايين‌ترين سطح انتزاع يعني سطح ترانزيستور و سوييچ را دارا مي‌باشد در حالي كه زبان VHDL توانايي مدل‌سازي سخت‌افزار در بالاترين سطوح انتزاع (تا سطح سيستم) را دارد. علارقم اينكه به كمك قابليت PLI زبان Verilog تا حدودي مي‌توان به توصيف سيستمي يك سخت‌افزار پرداخت، اما اصولا بهره‌گيري از HDL ها جهت توصيف يك سيستم ناكارآمد است و براي اين منظور زبان‌هاي كارآمد ديگري مانند SystemC و System Verilog طراحي شده كه به كمك آنها مي‌توان سخت‌افزار را از بالاترين سطح انتزاع توصيف نمود. لذا قابليت‌هاي توصيف سيستمي VHDL را به سختي مي‌توان در زمره برتري‌هاي آن نسبت به Verilog قلمداد كرد.
انواع داده در زبان Verilog نسبت به VHDL ساده تر و استفاده از آنها آسان‌تر مي‌باشد، ضمن اينكه اين انواع داده در Verilog به مدلسازي ساختاري نزديك‌تر هستند، در اين زبان برخلاف VHDL انواع داده مشخصي تعريف شده است و كاربر نمي‌تواند انواع داده جديد به آن اضافه كند. به دليل سادگي استفاده از انواع داده‌ها زبان Verilog نسبت به VHDL ارجحيت دارد.
براي فردي كه پيش‌زمينه‌اي در مورد زبان‌هاي برنامه نويسي ندارد، يادگيري زبان Verilogساده‌تر از VHDL است، چرا كه نوشتن كد‌هاي VHDL كمي پيچيده تر از Verilogمي‌باشد و براي تسلط بر خط كد اين VHDL، زمان بيشتري نياز است، علاوه بر اينكه در زبان‌ VHDL روش‌هاي متعددي براي مدل كردن يك مدار وجود دارد كه در ساختار‌هاي بزرگ مي‌تواند موجب سردرگمي افراد تازه‌ كار شود.

انتخاب يك زبان توصيف‌ سخت‌افزار
 

براي انتخاب يك زبان جهت توصيف مدار ديجيتال، عوامل متعددي را بايد علاوه بر برتري‌هاي ذاتي يك زبان خاص مدنظر قرار داد. برخي از اين عوامل عبارتند از:

سليقه شخصي :
 

اصولا چون اكثر مهندسين و طراحان مدارات ديجيتال به زبان
C مسلط هستند، زبان Verilog را كه خط كد مشابه C دارند ترجيح مي‌دهند، ضمن اينكه خوانايي كد‌هاي اين زبان بهتر از VHDL است.
موجوديت ابزار‌هاي شبيه‌سازي و سنتز : در حال حاضر ابزار‌هاي شبيه‌ساز رايگان متعددي براي زبان Verilog وجود دارند كه از ميان‌آنها ميتوان به كامپايلر Icarus Verilog اشاره كرد، در حالي كه ابزارهاي شبيه‌ساز متن‌باز اندكي براي VHDL موجود هستند و اقلب ابزار‌هاي شبيه‌سازي اين زبان، به صورت تجاري به فروش مي‌رسند.
عوامل تجاري و بازاريابي : بر اساس آمار‌هاي منتشر شده در سال 1998بازار ابزار‌هاي شبيه‌سازي زبان Verilog حدود 150 ميليون دلار اعتبار داشت به طوري كه اعتبار اين بازار نسبت به سال 1994 دو برابر شده بود، در سال 2003 نيز شركت Synopses يكي از بزرگترين شركت‌هاي اين بازار چند صد ميليون دلاري، اعلام كرد كه تيم توسعه و تحقيقات اين شركت تنها بر روي Verilog متمركز شده اند و در ابزار‌هاي شبيه‌سازي اين شركت از VHDLپشتيباني نخواهد شد.
زبان توصيف سخت‌افزاري Verilog مورد استقبال صنايع بزرگ قرار گرفته است به طوري كه امروزه اين زبان به عنوان يك زبان پركاربرد در صنعت طراحي و توليد مدارات ديجيتال شناخته شده است. در مقابل زبان VHDL از سوي جامعه آكادميك مورد استقبال قرار گرفته و بيشتر در پروژه‌هاي دانشگاهي از آن بهره گرفته مي‌شود.
تمركز وب‌سايت تخصصي سخت‌افزار ايران نيز با توجه به برتري‌هاي ذكر شده بر روي زبان توصيف سخت‌افزاري Verilog مي‌باشد. به همين منظور جهت فراگيري اين زبان خودآموز زير را به خوانندگان گرامي اهدا مي‌كنيم.
خودآموز زبان Verilog نگاشته جناب آقاي دكتر صفري استاديار دانشگاه تهران در گروه مهندسي كامپيوتر-سخت‌افزار:
جهت فراگيري زبان توصيف سخت‌افزاري VHDL نيز مراجع و كتب‌هاي متعددي وجود دارد كه بر اساس مشور‌ت‌هاي صورت گرفته Tutorial منتشر شده توسط سايت cic.org.tw به خوانندگان محترم پيشنهاد داده مي‌شود،نسخهPDF اين خودآموز را مي‌توانيد از اين آدرس دانلود كنيد.
WayneWolf, "ModernVLSIDesign" 3rd Edition, Prentice-Hall
SamirPalnitkar, "Verilog®HDL: A Guide to Digital Design and Synthesis", Second Edition, Prentice-Hall
DouglasJ.Smith, "HDLChip Design", Doone publications
ارسال مقاله توسط کاربر محترم سايت :hojat20